package com.platform.common.core.validator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * @Description: 自定义注解，校验参数是否为枚举
 * @Author: wcs
 * @Date: 2023-10-21 00:00
 **/
@Documented
@Constraint(
        validatedBy = {IsEnumConstraintValidator.class}
)
@Target({ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface IsEnum {

    /**
     * @return 枚举类class
     */
    Class<?>[] enumClass() default {};

    /**
     * @return 校验失败提示信息
     */
    String message() default "{字符串不在枚举中}";

    /**
     * @return 自定义注解必要属性
     */
    Class<?>[] groups() default {};

    /**
     * @return 自定义注解必要属性
     */
    Class<? extends Payload>[] payload() default {};
}
